﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

namespace Model
{
    [Serializable()]
    public class Schap : ISerializable
    {
        private int nummer;
        private Point een;   
        private Point twee; 
        private List<Artikel> artikelen = new List<Artikel>(); //De lijst van artikelen in dit schap

        public Schap(Point een, Point twee, int nummer)
        {
            this.een = een;
            this.twee = twee;
            this.nummer = nummer;
        }

        public Schap(SerializationInfo info, StreamingContext ctxt)
        {
            this.een = (Point)info.GetValue("Een", typeof(Point));
            this.twee = (Point)info.GetValue("Twee", typeof(Point));
            this.artikelen = (List<Artikel>)info.GetValue("Artikelen", typeof(List<Artikel>));
        }

        public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
        {
            info.AddValue("Een", this.een);
            info.AddValue("Twee", this.twee);
            info.AddValue("Artikelen", this.artikelen);
        }

        /// <summary>
        /// Nummer van het schap
        /// </summary>
        public int Nummer
        {
            get { return nummer; }
            set { nummer = value; }
        }

        /// <summary>
        /// Punt 1 van begin schap
        /// </summary>
        public Point Een
        {
            get { return een; }
        }

        /// <summary>
        /// Punt 2 van eind schap
        /// </summary>
        public Point Twee
        {
            get { return twee; }
        }

        /// <summary>
        /// De artikelen in het schap
        /// </summary>
        public List<Artikel> Artikelen
        {
            get { return artikelen; }
            set { artikelen = value; }
        }

        
    }
}

